home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998…eptember: Technology Seed / September 98 ADC Seed CD.toast / FireWire 1.1 DR2 SDK / Source / OpenTransport / Interfaces / OpenTptDevLinks.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-15  |  2.8 KB  |  128 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        OpenTptDevLinks.h
  3.  
  4.     Contains:    Link related constants and structures
  5.  
  6.     Copyright:    © 1993-1995 by Apple Computer, Inc., all rights reserved.
  7.  
  8.     Change History (most recent first):
  9.  
  10.          <3>    10/23/95    mjq        • Add newline to end of file
  11.          <2>     9/05/95    mjq        • Rename OpenTptDev.h to OpenTptCommon.h
  12.          <1>     7/31/95    mjq        • Started over from OpenTransport project
  13.  
  14.     To Do:
  15.  
  16. */
  17.  
  18. #ifndef __OPENTPTDEVLINKS__
  19. #define __OPENTPTDEVLINKS__
  20.  
  21. #ifndef __OPENTPTLINKS__
  22. #include <OpenTptLinks.h>
  23. #endif
  24.  
  25. #ifndef __OPENTPTCOMMON__
  26. #include <OpenTptCommon.h>
  27. #endif
  28.  
  29. #if PRAGMA_ALIGN_SUPPORTED
  30. #pragma options align=mac68k
  31. #endif
  32.  
  33. /*******************************************************************************
  34. ** Link related constants
  35. ********************************************************************************/
  36.  
  37. enum
  38. {
  39.     kEnetPacketHeaderLength        = (2*k48BitAddrLength)+k8022DLSAPLength,
  40.     //
  41.     // The TSDU for ethernet.
  42.     //
  43.     kEnetTSDU                    = 1514,
  44.     //
  45.     // The TSDU for TokenRing.
  46.     //
  47.     kTokenRingTSDU                = 4458,
  48.     //
  49.     // The TSDU for FDDI.
  50.     //
  51.     kFDDITSDU                    = 4458, //%%% Until someone tells me different
  52.     
  53.     
  54.     k8022SAPLength                = 1,
  55.     
  56.     //
  57.     // define the length of the header portion of an 802.2 packet.
  58.     //
  59.     k8022BasicHeaderLength        = 3, // = SSAP+DSAP+ControlByte
  60.     k8022SNAPHeaderLength        = k8022SNAPLength + k8022BasicHeaderLength
  61. };
  62.  
  63. /*******************************************************************************
  64. ** Address Types recognized by the Enet DLPI
  65. ********************************************************************************/
  66.  
  67. enum EAddrType
  68. {
  69.     keaStandardAddress=0, keaMulticast, keaBroadcast, keaBadAddress,
  70.     keaRawPacketBit = 0x80000000, keaTimeStampBit = 0x40000000
  71. };
  72.  
  73. /*******************************************************************************
  74. ** Packet Header Structures
  75. ********************************************************************************/
  76.  
  77. struct EnetPacketHeader
  78. {
  79.     UInt8    fDestAddr[k48BitAddrLength];
  80.     UInt8    fSourceAddr[k48BitAddrLength];
  81.     UInt16    fProto;
  82. };
  83.  
  84. typedef struct EnetPacketHeader    EnetPacketHeader;
  85.  
  86. struct T8022Header
  87. {
  88.     UInt8    fDSAP;
  89.     UInt8    fSSAP;
  90.     UInt8    fCtrl;
  91. };
  92.  
  93. typedef struct T8022Header    T8022Header;
  94.  
  95. struct T8022SNAPHeader
  96. {
  97.     UInt8    fDSAP;
  98.     UInt8    fSSAP;
  99.     UInt8    fCtrl;
  100.     UInt8    fSNAP[k8022SNAPLength];
  101. };
  102.  
  103. typedef struct T8022SNAPHeader    T8022SNAPHeader;
  104.  
  105. struct T8022FullPacketHeader
  106. {
  107.     EnetPacketHeader    fEnetPart;
  108.     T8022SNAPHeader        f8022Part;
  109. };
  110.  
  111. typedef struct T8022FullPacketHeader    T8022FullPacketHeader;
  112.  
  113. /*    -------------------------------------------------------------------------
  114.     Define the lengths of the structures above
  115.     ------------------------------------------------------------------------- */
  116. enum
  117. {
  118.     kT8022HeaderLength                = 3,
  119.     kT8022SNAPHeaderLength            = 3 + k8022SNAPLength,
  120.     kT8022FullPacketHeaderLength    = kEnetPacketHeaderLength + kT8022SNAPHeaderLength
  121. };
  122.  
  123. #if PRAGMA_ALIGN_SUPPORTED
  124. #pragma options align=reset
  125. #endif
  126.  
  127. #endif
  128.